home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Arsenal Files 8
/
The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO
/
prg_casm
/
snpd9611.zip
/
WHATS.NEW
< prev
next >
Wrap
Text File
|
1996-11-24
|
9KB
|
194 lines
+++Date last modified: 24-Nov-1996
What's new in SNIPPETS Nov 96 edition?
======================================
General stuff:
--------------
Each file in SNIPPETS (except for certain test files) now contains the date
it was actually last changed in line 1. Since SNIPPETS files are time/date
stamped to their release date (more on this below) prior to release, this
provides useful information whether the file you have has actually been
updated or not.
One of the first things you might notice is that this release contains a lot
more C++ code than last time. As the language specification settles and more
people get comfortable with it, I'm finding more folks posting high-quality
public domain and/or freeware code. I collect the best of these and include
them in SNIPPETS.
I've added a few more functions from my MicroFirm Function Library (MFL) plus
removed some limitations on some MFL code already included. Since many of the
MFL-derived files now contain all of the features of the MFL originals, I've
added a separate license in the file LICENSE.MFL. Basically it says you can
use any MFL-derived source for any purpose except selling the source or
objects (in .obj or .lib formats). This should cover all legitimate uses and
still leave me with the option of commercially publishing them separately if
the opportunity arises.
If you have existing programs using GETOPTS.C, PSPLIT.C, or PMERGE.C, you'll
need to rework it for use with this release. I've replaced the crippled
version of GETOPTS.C with the full-blown MFL implementation which adds
additional features albeit with more complexity. PSPLIT.C and PMERGE.C were
actually crippled versions of the code from MFL's FSPLIT.C. Althought their
semantics matched the same-named functions supplied with many compilers, the
MFL versions are significantly more powerful, but will require some code
rework to use.
You'll notice a number of new files with a .HOW extension. These are FAQ
(frequently asked question) response files. They explain the workings of some
of the more cryptic or complex SNIPPETS such as EVAL.C or DBLROUND.C.
Included is the often requested DIRPORT.HOW, a tutorial on the portable
directory processing definitions in DIRPORT.H.
New complete packages:
----------------------
The standout in this category is Andrew Clarke's outstanding VIDMGR direct
video library (version 1.3), portable between DOS, Win32, and OS/2, and
available for all popular compilers. Read about it in VIDMGR.TXT.
David Nugent contributed a robust ANSI/Avatar screen code interpreter written
in C++. Begin your tour of it by reading SHOWANSI.DOC/
From Branislav Slantchev comes a quite complete C++ date class library. See
ZDATE.MAN to learn how to use it.
Jari Laaksonen's C/C++ comment utilities are back after an absense from the
previous SNIPPETS release for some bug fixes. His older utilties, written in
C are back, plus he's added a whole new set built around a C++ parser. All is
explained in CMTCONVR.TXT.
Fred Cole's CSPLIT utility, version 2.2, is included in its entirety. For
those unfamilar with it, CSPLIT breaks one or more source files up into
smaller sections suitable for inclusion in size-limited electronic mail
messages.
Erik Bachmann's complete BACSTD library and utilities are now included. As
this version of SNIPPETS is released, I haven't taken too much time to
"portabalize" these, so they remain somewhat Borland-specific albeit still
quite useful. Be sure to check out Erik's functions for non-English, non-
ASCII string processing.
Jari Laaksonen took the WHICHARC.C code contributed by Heinz Ozwirk and later
expanded by David Gersic and reformed it into a set of extensible C++ classes
for determining which archive utility was used on an archive file (even self-
extracting archives). The complete work is now included in 5 files - look for
the names, WHICHARC.* and ARCHIVE.*.
From MFL comes the complete, non-crippled, GETOPTS.C. If you need to process
command line options or wildcard file specs, this is the tool to use! You'll
have to read GETOPTS.MAN to get the complete picture - getops() is powerful,
but much more complex than the older version in the last SNIPPETS. Still,
it's much easier to learn than to try to write similar functionality from
scratch.
The only downside to using the full-blown GETOPTS package is size. If the old
GETOPTS.C filled your needs and you can live without all of the new GETOPTS
features, the old version is still included as GETOPTSL.C (it stands for
getopts_lite()!)
Other highlights:
-----------------
If you're always looking up cheat sheets or grabbing books for lists of
operators, keywords, functions, macros, etc., SNIPPETS now includes
STDSTUFF.TXT which lists all operators, keywords, functions, macros,
preprocessor directives, and trigraphs for ANSI/ISO standard C, the Posix.1
extensions (if you don't know about Posix, you should also read POSIX.NFO),
the draft numerical extensions from the Numerical C Extensions Group (NCEG),
and the draft C++ standard.
For DOS folks wishing to embed more-style processing in their programs, I
added MOREPROC.C which implements the traditional page-at-a-time processing,
and ADJSCROL.C which allows a user to vary the scroll rate as the text rolls
by.
A new PARSTIME.C provides pasring of times just as PARSDATE.C already
provided parsing of dates.
Game players will be glad to see C functions to simulate the rolling of dice
(ROLLDICE.C and a C++ class to implement a deck of standard playing cards
(CARDS.CPP).
Yet another configuration file reader has been added. The new CFG.C and the
older INITVARS.C each have complementary strengths, so you can choose which
ever best suits your needs.
From MFL comes EXISTS.C. Using it, you can check to see if a specified file
exists. Big deal, right? Well, it also can search the PATH environment
variable (envar) or any other similarly formatted envars, such as the LIB and
INCLUDE envars used by many compilers.
Also from MFL comes FOPENX.C. It searches paths just like EXISTSX.C, but if
it finds the file, it opens it for you.
A number of new math functions and applications have been added for doing
things like computing specific elements of the Fibonacci series or calcula-
ting pi to even more digits that the previous SNIPPETS code would allow.
One new, deceptively simple, addition is RND_DIV.C, which performs integer
division with rounding, valid for all values of divisors and dividends.
Several new demo programs have been added to help use existing SNIPPETS
files. One example is MDASORT.C which shows how to sort multi-dimensional
arrays allocated by MDALLOC.C or AMALLOC.C.
A discussion in the FidoNet C_Echo led to several new variations on the old
theme of how to most efficiently count the number of bits set in a number. By
the end of the discussion, several excellent new approaches found their way
into SNIPPETS along with a benchmark to evaluate them. This isn't trivial
since different compilers work better with different algorithms.
The old DOS functions, NOCTRLC.C and NORESET.C, to trap Ctrl-C, Ctrl-Break,
and Ctrl-Alt-Del, have been superceded by KBTRAP.C. In addition to the other
keys, the KBTRAP code traps the SysRq and Pause keys. It also traps Print
Screen operations which are remembered for possible deferred execution.
For DOS users wanting to run a background task off of the timer interrupt,
I've added TICKTRAP.C.
From Paul Johnston comes a C++ class library for calculating 6 different
types of 16- and 32-bit CRC's.
From Mark Corgan comes a pair of utilities, suitable for hacking into
componenet pieces, for creating searchable indexes for text files with
variable length records. Check them out in INDEX.C and LOOKUP.C
Auke Reitsma, a prolific SNIPPETS contributor has provided a generic finite
state machine implementation - see FSM.C.
One major annoyance to me has been that after I carefully arrange the files
in SNIPPETS, some visual operating systems insist on sorting the files
regardless of their order in the directory. Even worse, some file systems
sort the files in the directory itself. My solution, which I've used in this
release, is to create a DOS utility (see SEQTOUCH.C) which sequentially sets
the time/date stamps of every file in a given directory. I use this on
SNIPPETS files prior to release, so once they're unpacked, you can still see
them in "natural" order by simply sorting by date.
For DOS programmers, from Cliff Rhodes comes a set of both XMS and EMS memory
management functions.
Unix users haven't been forgotten. In addition to the existing implementa-
tion of getch() for Unix, I've added UNXSLEEP.C for implementing short
duration time delays in Unix programs, useful in porting some PC code.
You'll find many more changes and additions along with bug fixes and general
clean-up.
------------------------------- Enjoy! -----------------------------------
Bob Stout
FidoNet: 1:106/2000.6
C_Echo moderator (1990-1991, 1996-1997)
Internet: rbs@brokersys.com
SnailMail: MicroFirm
P.O. Box 428
Alief, TX 77411